Storage systems can be made up of multiple interconnected storage devices connected to one or more servers to increase performance in terms of storage capacity, reliability, scalability, and availability. System storage performance can be enhanced by using system management operations including management of data communication and management of data placement. Data system management has multiple aspects including techniques for data storage, storage device mapping, data recovery, data integrity, backup operations, and storage element utilization.
Storage systems can store large amounts of data at least partly on the basis of inherent and simple scalability. The volume capacity can be simply increased by adding physical storage devices. However, the mere addition of hardware resources does not create the most efficient and useful storage system.
Virtualization of memory facilitates the management of data storage systems. Virtualization yields a “virtual volume” which is an abstraction of the various data storage devices in the systems. According to previously developed techniques, a virtual volume of memory can be managed by maintaining a “change log” or a “dirty block list” for tracking which blocks of data on a virtual volume have changed over time. Such techniques were disadvantageous in that the change logs or dirty block lists were additional data structures that needed to be defined and maintained by the data storage systems.